<?php

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 * Description of user
 *
 * @author Bui Van Thien
 */
class Controller_Users extends Controller_Authusers
{

    /**
     * action login 
     * @return void Description
     */
    public function action_login()
    {
        /*
         * TODO kiểm tra đã Auth hay chưa 
         * Nếu chưa thì Auth_User
         *  TODO: Auth thành công tạo Session current_user. chuyển hướng đến 
         *      trang  index
         *      Auth lỗi: Thông báo "Sai TÊN ĐĂNG NHẬP/MẬT KHẨU!, Xin thử lại."
         * Nếu rồi chuyển hướng đến trang index
         */
        if(Input::method() == 'POST')
        {
            if(Auth::login(Input::post('username'),Input::post('password')))
            {
                Session::set_flash('success','Đăng nhập thành công!');
                \Fuel\Core\Response::redirect('users/index');
            } 
            else
            {
                Session::set_flash('danger','Sai USERNAME/PASSWORD!');
            }
        }
        $this->template->title = 'Moneylovers:Login';
        $this->template->content = View::forge('users/login');
    }
    
    /**
     * action logout
     * @return void Description
     */
    public function action_logout() 
    {
        //TODO: xóa session user
        //TODO:Chuyển đến trang login.
        Session::destroy();
        \Fuel\Core\Response::redirect('users/login');
    }

    /**
     * action index 
     * @return array  Description
     */
    public function action_index()
    {
        $users = Model_User::find('all');
        $this->template->title = 'Danh sách người dùng';
        $this->template->content =  View::forge('users/index');
        $this->template->content->set('users',$users);
//        Debug::dump($users);die;
//       return Response::forge(View::forge('user/index',array('users'=>$users)));
    }

    /**
     * action add user
     * @return void
     */
    public function action_add()
    {
        //TODO Lấy thông tin từ trình duyệt
        //TODO Kiểm tra email đã tồn tại
        //TODO Kiểm tra tính hợp lệ các trường: trim, escape, script, html.
        /*
         * TODO Add user vào CSDL 
         * nếu thành công -> Send email active.
         * không thành công báo lỗi "Tạo tài ACCOUNT không thành công!".
         */
    }

    /**
     * action edit user
     * @param int $user_id Description
     * @return void Description
     */
    public function action_edit($id)
    {
        /*
         * TODO Kiểm tra id có tồn tại hay ko
         * Nếu có 
         * TODO: Kiểm tra tính hợp lệ các trường. trim, escapse, html, script..
         * TODO: Cập nhật nội dung
         */
    }

    /**
     * action delete
     * @param int $user_id Description
     * @return void Description
     */
    public function action_delete($id)
    {
        /*
         * TODO:
         *  Kiểm tra id có tồn tại hay ko
         *  Nếu ko thông báo: "USER ko tồn tại!"
         *  Nếu có
         *      TODO:
         *      Xóa category + wallet + transaction + user đó
         *      Xóa thành công thông báo: "Xóa thành công!"
         *      Xóa lỗi thông báo: "Xóa không thành công! Vui lòng thử lại"
         */
    }

    /**
     * action change_password
     * @return void Description
     */
    public function action_change_password()
    {
        /*
         * TODO Kiểm tra dữ liệu vào có hợp lệ ko
         *  trim,escapse, script.
         * Không hợp lệ thông báo lõi: ""
         * Hợp lệ cập nhật password mới
         */
    }

    /**
     * action resetpassword
     * @return void Description
     */
    public function action_reset_password()
    {
        /*
         * TODO: Kiểm tra email vs username
         * Nếu sai thông báo: "EMAIL & USERNAME không đúng!"
         * Đúng random password: 6 ký tự
         * Send đến mail.
         * TODO thông báo:
         *  "Reset password thành công! Mời bạn vào mail {$mail} nhận password!"
         */
    }

    /**
     * action acivate account
     * @param string $email Email active
     * @param string $code Mã active
     * @return void Description
     */
    public function action_activate()
    {
        /*
         * TODO: Kiểm tra thông tin status của email đó có = 1 hay ko
         * Nếu ko cập nhật status = 1. Thông báo active thành công!, chuyển đến
         * trang index
         * Nếu bằng thì thông báo đã active, chuyển đến trang login
         */
    }
    
    /**
     * send email method
     * @param type $username
     * @param type $email
     * @return boolean
     */
    public function send_email($username, $email, $code) {
        //TODO:Gửi email
        //TODO:Trả về kết quả true Nếu gửi thành công, false: Nếu gửi thất bại
    }
    
}
